package testes;
import static org.junit.Assert.*;

import java.util.Date;
import java.util.Vector;

import junit.framework.Assert;

import org.junit.Before;
import org.junit.Test;

import projeto.Cliente;
import projeto.DevolverFilmes;
import projeto.Filme;
import projeto.Locacao;
import projeto.Locadora;


public class PagarDividaTest {

	Locadora locadoralanna;
	Cliente cl1, cl2;
	Vector<Cliente> clientes =  new Vector();
	Locacao lc1, lc2;
	Filme fl1, fl2, fl3;
	DevolverFilmes df;
	
	@Before
	public void prepararTesteIniciarDevolucao(){
		locadoralanna = new Locadora();
		
		cl1 = new Cliente("c1","123","Maylon");		
		
		lc1 = new Locacao(new Date(2011, 9, 1), new Date(2011, 9, 5), cl1);
		
		fl1 = new Filme(0, "Titanic", "Navio Afunda", lc1);
		fl2 = new Filme(1, "Conan", "Bruto", lc1);
		fl3 = new Filme(2, "Diario da Princesa", "Um saco", lc1);
		
		lc1.setFilme(fl1);
		lc1.setFilme(fl2);
		lc1.setFilme(fl3);
		
		cl1.setLocacoes(lc1);
		
		clientes.add(cl1);
		
		locadoralanna.setClientes(clientes);
		
		df = new DevolverFilmes(locadoralanna);
		
		
	}
	@Test
	public void testPagarDivida() {

			df.iniciarOperacao("c1");
			
			//Primeira devolucao
			df.realizarDevolucao(0,false);
			df.realizarDevolucao(1,false);
			df.realizarDevolucao(2,false);
			Assert.assertEquals(30.0, cl1.getDivida());//usando diretamente o cliente ou..
			Assert.assertEquals(30.0, df.getCliente().getDivida());
			df.pagarDivida();
			Assert.assertEquals(0.0, cl1.getDivida());
			Assert.assertEquals(0.0, df.getCliente().getDivida());
			
	}
	

}
